1. Field of the Invention
The invention relates generally to storage subsystems and more specifically relates to pre-merge operations performed in response to insertion of disk drives of a foreign volume group into storage array.
2. Discussion of Related Art
Computer systems use storage devices for storage and retrieval of data as well as programs. As computing applications have evolved, so to have demands on storage devices for increased capacity, speed and reliability. Storage devices have evolved from simple single disk devices to complex subsystems with substantial local control capabilities for extensive local management of storage.
Present day storage subsystems may incorporate local management capabilities for improved performance as well as enhanced reliability. Storage management techniques for enhanced performance may include features such as striping to distribute data over multiple individual disk drives in the subsystem so that any particular I/O operation may be completed by using multiple disk drives operating in parallel. Other storage management techniques, so-called RAID storage management, enhance reliability of storage subsystem by including redundancy information to permit ongoing operations of the storage subsystem despite loss of one or more of the individual disk drives.
Such high-performance, high reliability storage subsystems often subdivide or partition the total storage capacity of the subsystem into logical groupings referred to as volumes or logical units (“LUNs”). Each such volume may comprise a portion of the total capacity of the storage subsystem including some portion of one or more of a plurality of disk drives within the storage subsystem. Further, each disk drive within the storage subsystem may have portions of its individual capacity allocated to zero or more such volumes. A volume group is a collection of one or more disk drives on which one or more volumes are defined. No volume in a volume group can span any other volume group.
Each volume of such a storage subsystem is generally presented to attached host systems as a single high capacity, high-performance, high reliability storage device. Hidden from the host system is the “geometry” of the volume—the distribution of data over multiple disk drives and use of redundancy information. In other words, local control processing capabilities within the storage subsystem provide mapping of logical storage locations into corresponding physical locations on the individual disk drives and provide for generation and verification of redundancy information.
Each storage subsystem may provide one or more volumes of storage for a host system or a plurality of networked computing devices. Some volumes may be configured to optimize for performance while other volumes may be optimized for reliability depending upon the needs of particular computing applications. System administrators for such complex storage applications utilize tools to help configure the multiplicity of volumes associated with such complex storage applications. As particular applications within the administrator's enterprise increase or decrease their need for storage, the system administrator may dynamically reconfigure various aspects of the storage subsystems. Such reconfiguration may include, for example, migrating an entire volume physically from one array storage subsystem to another array storage subsystem. Such migration may be useful to provide added capacity for a particular computing applications associated with a particular storage subsystem where excess capacity is available in another storage subsystem.
In many present day computing and storage applications, a volume group may be removed from a storage system and inserted in another storage system (or reinserted in the same storage system). Sometimes a volume group may be removed from a first storage system and migrated to another system where the volume group is then inserted. In certain high security applications, a volume group may be removed from a storage system to secure it from unauthorized access and then reinserted when security concerns so permit.
In general, as presently known in the art, configuration information is stored on the disk drives of a volume group. The configuration information may indicate the storage array subsystem in which the volume is presently operating. Within that identified storage subsystem, the volume and disk drives are referred to as “native”. The same information relative to other storage array subsystems defines the disk drives and volume as “foreign” with respect to such other storage array subsystems. When individual disk drives or an entire volume group are inserted into a storage subsystem, the controller(s) of that storage subsystem reads the configuration information from the disk drives and determine if the individual disk drive is native or foreign with respect to that storage array subsystem. Similarly, if all disk drives of a volume group are inserted into a system, the volume group may be identified as foreign or native to that storage system.
The information read from the disk drives also includes information regarding the volumes in which each disk drive was a member. When the controller of the storage array reads the configuration information from the disk drive and determines that disk drive is foreign with respect to that storage array subsystem, the user may be prompted to indicate whether the volume or volumes associated with this drive are to be “imported” into the storage array.
The configuration data indicating volumes associated with the drive or volume group is generally saved in an area referred to herein as the volume data area. In some storage array systems, configuration information stored on the disk drives is arranged in at least two distinct areas-a volume data area and an “other” data area. In general, such a division of configuration information derives from the evolution of storage subsystems. The other data area includes, for example, information pertaining to atypical storage volumes or partitions. Exemplary of such atypical storage volumes or partitions are: so-called pseudo volumes. Such pseudo volumes may include, for example, remote volumes physically resident outside the confines of any particular storage system and snapshot volumes representing snapshot copies of other volumes often used in backup procedures. Configuration and utilization of such pseudo volumes has evolved over time as add-on features or extensions to existing storage subsystem control logic and features. A natural progression in such evolution tended to relocate such extension or enhancement data in the other data area associated with configuration information on disk drives.
Problems have arisen due to the subdivision of configuration data into two or more data areas as discussed above. A first problem arises in that the other data area has historically not been duplicated on all disks of the array storage subsystem. This incurs the detriment of a lower level of redundancy as regards such other configuration information. The reduced redundancy of the other configuration information may give rise to reliability problems relating to the associated configuration information.
A second problem relating to the subdivision of such configuration information into two or more data areas relates to operations to merge such configuration information with existing configuration information in a storage subsystem. In general, when a new volume group is inserted into an array storage subsystem, the volumes defined in the configuration information on the disks are merged with other volume information already known to the system. Since the configuration information has historically been subdivided into two or more data areas, the merging operation with respect to the two distinct areas cannot be assured to occur as an atomic, uninterruptible operation. This complicates recovery procedures where, for example, power is lost during the merge operations.
It is evident from the above discussion that a need exists for improved merging of information where configuration information includes distinct portions relating to volume information and relating to other configuration information.